from django.db import models


# Create your models here.

# # 院系
# class Department(models.Model):
#     name = models.CharField(max_length=255, null=False)


# 老师  学生

# 试题 学生

# 写一个收集学生信息的表单,
# url配置为/student,视图函数中接收表单传递过来的学生信息,
# 根据模型类,将学生的信息保存到数据库中.
# 学生的信息包括 name, 班级名称classname, 身份证号cardid,手机号码phone. （必填）
# 1v1  1v多  多v多
# 老师  课程 {如果将其看做一个类的话,它的对象会有多少呢? 以后也会变化}
# 课时  pass
# 课本  book   意义
# 女同学  pass
# 笔  pass
# 考试    有哪些属性  有那个属性和学生有关系  学生有那个属性和此有关系
# 宿舍
# 食堂   没必要
# 学校   你写什么项目
# 院系(专业)   有或没有 看实际情况, 对象<5 & 以后没改变-->不建议创建这个类

# 1. 确定某个东西 是否和 student 有关系
# 2. 是什么关系

# 在一个教学周期内 学生和老师的关系
# 老师   看重的是什么关系  教 学  , 一个老师可以教多个学生,   1
# 一个学生可以跟多少个老师学    多


# 书籍 book   多v多

# 宿舍  多v多 ?  住  宿舍1v多(学生)
# 通过问自己两个问题来确定关系

# 在具体某一个教学周期内

# 课程类   课程单独存在   student 要上课
# 先后顺序
# 主从关系
class Course(models.Model):
    LEVEL = (('0', '初级课程'), ('1', '高级课程'))
    name = models.CharField(max_length=255, null=False)
    level = models.CharField(max_length=1, choices=LEVEL)


class Student(models.Model):
    name = models.CharField(max_length=20, null=False)
    classname = models.CharField(max_length=20, null=False)
    cardid = models.CharField(max_length=18, null=False)
    phone = models.CharField(max_length=18, null=False)
    #     多的里边要写一个外键
    # course = models.ForeignKey(Course, on_delete=models.CASCADE,default='1')
    # course = models.ForeignKey(Course, on_delete=models.SET_NULL, null=True, default='1')
    course = models.ForeignKey(Course, related_name='student', on_delete=models.SET_DEFAULT, default='1')

    # models.ManyToManyField

# 写一个题库类,有题目类型,标题,描述,题目标签,题干,参考答案,难易程度属性,
# 通过代码方式,从前端界面采集一个题目信息保存到数据库中（必填）


# 作者类     博客类       写与被写
#  1   v      多
# 先后顺序
# 主从, 谁依靠谁而存在的 依赖关系   单独


# 总结
#  1 确定两个类有关系
#       其中有没有类中的 某个属性石另一个类的对象
#     对象 < 5 & 以后没改变 -->不建议创建这个类

#  2      1   v   多
#             模型类如何写
#  3  数据的增删改查
#             添加数据的时候,先添加主表数据
#                 删除数据的时候, CASCADE,--> 皮之不存毛将焉附
#                 反向查询   如果从表中没有设置related_name属性,
#                         related_name  or  从表模型_set 获取到反向查询结果

